(function () {
    'use strict';

    angular
        .module('SURF')
        .factory('A01D01Service', A01D01Service);

    A01D01Service.$inject = ['$http', '$q', 'HOST'];

    function A01D01Service($http, $q, HOST) {
        return {
            getAllAgent: function (bean) {
                var deferred = $q.defer();
                var promise = $http({
                    method: 'POST',
                    url: RECIPE_HOST_ADDRESS + HOST.AGENT_SELECT,
                    data: bean
                });
                promise.then(
                    // 通讯成功的处理
                    function (answer) {
                        // 在这里可以对返回的数据集做一定的处理,再交由controller进行处理
                        answer.status = true;
                        deferred.resolve(answer);
                    },
                    // 通讯失败的处理
                    function (error) {
                        // 可以先对失败的数据集做处理，再交由controller进行处理
                        error.status = false;
                        deferred.reject(error);
                    });
                // 返回promise对象，交由controller继续处理成功、失败的业务回调
                return deferred.promise;
            },getAgentById: function (cTaiId) {
                var deferred = $q.defer();
                var promise = $http({
                    method: 'POST',
                    url: RECIPE_HOST_ADDRESS + HOST.AGENT_SELECT_ID,
                    params: {
                        'cTaiId': cTaiId
                    }
                });
                promise.then(
                    // 通讯成功的处理
                    function (answer) {
                        // 在这里可以对返回的数据集做一定的处理,再交由controller进行处理
                        answer.status = true;
                        deferred.resolve(answer);
                    },
                    // 通讯失败的处理
                    function (error) {
                        // 可以先对失败的数据集做处理，再交由controller进行处理
                        error.status = false;
                        deferred.reject(error);
                    });
                // 返回promise对象，交由controller继续处理成功、失败的业务回调
                return deferred.promise;
            },getSelectAll: function () {
                var deferred = $q.defer();
                var promise = $http({
                    method: 'GET',
                    url: RECIPE_HOST_ADDRESS + HOST.SELECT_ALL
                });
                promise.then(
                    // 通讯成功的处理
                    function (answer) {
                        // 在这里可以对返回的数据集做一定的处理,再交由controller进行处理
                        answer.status = true;
                        deferred.resolve(answer);
                    },
                    // 通讯失败的处理
                    function (error) {
                        // 可以先对失败的数据集做处理，再交由controller进行处理
                        error.status = false;
                        deferred.reject(error);
                    });
                // 返回promise对象，交由controller继续处理成功、失败的业务回调
                return deferred.promise;
            },getAllLine: function () {
                var deferred = $q.defer();
                var promise = $http({
                    method: 'GET',
                    url: RECIPE_HOST_ADDRESS + HOST.LINE_ALL
                });
                promise.then(
                    // 通讯成功的处理
                    function (answer) {
                        // 在这里可以对返回的数据集做一定的处理,再交由controller进行处理
                        answer.status = true;
                        deferred.resolve(answer);
                    },
                    // 通讯失败的处理
                    function (error) {
                        // 可以先对失败的数据集做处理，再交由controller进行处理
                        error.status = false;
                        deferred.reject(error);
                    });
                // 返回promise对象，交由controller继续处理成功、失败的业务回调
                return deferred.promise;
            },getVersion: function (line_id) {
                var deferred = $q.defer();
                var promise = $http({
                    method: 'GET',
                    url: RECIPE_HOST_ADDRESS + HOST.GET_VERSION,
                    params: {
                        'line_id': line_id
                    }
                });
                promise.then(
                    // 通讯成功的处理
                    function (answer) {
                        // 在这里可以对返回的数据集做一定的处理,再交由controller进行处理
                        answer.status = true;
                        deferred.resolve(answer);
                    },
                    // 通讯失败的处理
                    function (error) {
                        // 可以先对失败的数据集做处理，再交由controller进行处理
                        error.status = false;
                        deferred.reject(error);
                    });
                // 返回promise对象，交由controller继续处理成功、失败的业务回调
                return deferred.promise;
            },getDevices: function (line_id,version_no) {
                var deferred = $q.defer();
                var promise = $http({
                    method: 'GET',
                    url: RECIPE_HOST_ADDRESS + HOST.GET_DEVICES,
                    params: {
                        'line_id': line_id,
                        'version_no': version_no
                    }
                });
                promise.then(
                    // 通讯成功的处理
                    function (answer) {
                        // 在这里可以对返回的数据集做一定的处理,再交由controller进行处理
                        answer.status = true;
                        deferred.resolve(answer);
                    },
                    // 通讯失败的处理
                    function (error) {
                        // 可以先对失败的数据集做处理，再交由controller进行处理
                        error.status = false;
                        deferred.reject(error);
                    });
                // 返回promise对象，交由controller继续处理成功、失败的业务回调
                return deferred.promise;
            },saveSettings: function (line_id,version_no,devices) {
                var deferred = $q.defer();
                var promise = $http({
                    method: 'GET',
                    url: RECIPE_HOST_ADDRESS + HOST.SAVE_SETTINGS,
                    params: {
                        'line_id': line_id,
                        'version_no': version_no,
                        'equipment_id': devices
                    }
                });
                promise.then(
                    // 通讯成功的处理
                    function (answer) {
                        // 在这里可以对返回的数据集做一定的处理,再交由controller进行处理
                        answer.status = true;
                        deferred.resolve(answer);
                    },
                    // 通讯失败的处理
                    function (error) {
                        // 可以先对失败的数据集做处理，再交由controller进行处理
                        error.status = false;
                        deferred.reject(error);
                    });
                // 返回promise对象，交由controller继续处理成功、失败的业务回调
                return deferred.promise;
            }


        }
    }

})();
